In computer networks, a number of network stations are typically interconnected via a communications medium. For example, Ethernet 802.3 is a commonly used local area network (LAN) scheme in which multiple stations are connected to a shared or dedicated serial data path. These stations often communicate with a switch located between the data path and the stations connected to that path. The switch typically controls the communication of data and includes logic for receiving and forwarding data frames to their appropriate destinations.
When all of the stations connected to the network are simultaneously operating and transmitting data at high speeds, data traffic on the switch may become heavy. Accordingly, some switches implement a flow control scheme using, for example, “pause” frames. In this case, when some sort of congestion on the switch occurs, the switch may transmit a media access control (MAC) control pause frame to one of the stations connected to the switch. The pause frame instructs that station to stop sending data for a period of time.
A network with a large number of stations may use a switch consisting of two or more switch components that may be cascaded together to support all of the stations. A drawback with conventional flow control schemes, such as those using pause frames, is that a switch is unable to selectively suspend data transmissions from network stations that may be connected to a particular switch component without suspending data transmissions from all network stations connected to that switch component. In networks where a number of switches or switch components are cascaded together, such a situation may contribute to congestion-related problems on one or more of the switch components, resulting in reduced data throughput and creating head-of-line blocking.